/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import model.dominio.Cliente;

/**
 *
 * @author Braulio
 * Classe responsável por gerenciar o banco de dados da tabela de Clientes.
 */
public class DaoCliente extends DaoPessoa {

    public DaoCliente() {
        super();
    }

    /*
     * 
     * @author Rodrigo
     * @param cliente 
     * @return o cliente que contenha CPF igual o do cliente passado por parâmetro ou a lista clientes que tenham nome igual ou parecido com o cliente passado como parâmetro.
     */
    public List<Cliente> buscarClientes(Cliente cliente) {
        EntityManager em = super.getEntityManager();
        try {
            String strSQL = "SELECT c FROM Cliente c ";
            if (cliente.getCpf() != null) {
                strSQL += "WHERE c.cpf='" + cliente.getCpf() + "' ";
            } else if (cliente.getNome() != null) {
                strSQL += "WHERE c.nome LIKE '" + cliente.getNome() + "%' ";
            }
            strSQL += "ORDER BY NOME ASC";
            em.getTransaction().begin();

            Query query = em.createQuery(strSQL);

            return (List<Cliente>) query.getResultList();
        } catch (PersistenceException e) {
            return null;
        } finally {
            em.close();
        }
    }
}
